<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8"/>
        <title>新的模板</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!--
            监视属性watch:
                1.当被监视的属性变化时，回调函数自动调用，进行相关操作
                2.监视的属性必需存在，才能进行监视！！（不会报错）
                3.监视的两种方法：
                    1）new Vue时传入watch配置
                    2）通过vm.$watch监视
        -->
        <!-- 准备好一个容器 -->
        <div id="root">
            <h2>今天天气很好{{ info }}</h2>
            <button @click="changeWeather">切换天气</button>
            <!-- 绑定事件的时候：@xxx="yyy" yyy可以写一些简单的语句  -->
            <!-- <button @click="isHot = !isHot">切换天气</button> -->
        </div>

        <script type="text/javascript">
            Vue.config.productionTip = false;// 阻止 vue 在启动时生成生产提示。

            const vm = new Vue({
                el:'#root'
                ,data:{
                    isHot:true
                }
                , computed:{
                    info(){
                        return this.isHot ? '炎热' : '凉爽'
                    }
                }
                , methods:{
                    changeWeather(){
                        this.isHot = !this.isHot
                    }
                }
                // , watch:{
                //     isHot:{
                //         // 初始化时让handler调用一下
                //         immediate:true
                //         // handler什么时候调用？ 当isHot发生改变时调用
                //         ,handler(newValue, oldValue){
                //             console.log('isHot被修改了', newValue, oldValue)
                //         }
                //     }
                // }
            })

            vm.$watch('isHot', {
                immediate:true// 初始化时让handler调用一下
                // handler什么时候调用？ 当isHot发生改变时调用
                ,handler(newValue, oldValue){
                    console.log('isHot被修改了', newValue, oldValue)
                }
            })

        </script>
    </body>
</html>